# -*- encoding=utf8 -*-
__author__ = "测试工程师成长之路"

from airtest.core.api import *
import logging

auto_setup(__file__)

# 日志过虑，只留ERROR
logger = logging.getLogger("airtest")
logger.setLevel(logging.ERROR)

print('--------------------启动微信--------------------')
start_app('com.tencent.mm')

print('--------------------初始化POCO--------------------')
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

# 说明：有些页面有时候无法查找到文本，所以采用图片识别
print('运行环境为：%s'%env)
try:
    flag0 = poco(text='微信').wait(5).exists()
    print('校验微信是否加载完成：%s'%flag0)
    assert_equal(flag0,True,'校验微信是否启动成功')
    # poco.swipe((0.1,0.1),(0.1,0.5),duration=0.1)
    swipe((492,305),(492,1682))
    flag1 = poco(text='搜索小程序').wait(5).exists()
    print('校验小程序是否加载完成：%s'%flag1)
    assert_equal(flag1,True,'校验是否是小程序页')
    # 点击测试环境美团外卖
    if env == 'PROD':
        print('这是生产环境')
        poco(text='美团外卖').click()
    else:
        # demo
        poco(text='美团外卖测试').click()
    sleep(5)
    flag2 = poco(text='美食').exists()
    print('校验首页美食是否存在：',flag2)
    if flag2:
        assert_equal(flag2,True,'校验美团外卖小程序是否加载完成')
    else:
        assert_exists(Template(r"美食.png", record_pos=(-0.38, -0.553), resolution=(1080, 2340)), "校验美团外卖小程序是否加载完成")
    sleep(2)
    # 坐标设置方法：点击选项->设置->勾选实时坐标显示
    # 点击搜索框
    touch([527,295])
    sleep(2)
    # 输入框输入并自动点击搜索
    text('汉堡',enter=False,search=True)
    sleep(5)
    dekeshiflag = poco(text='德克士（小红门店）').exists()
    if dekeshiflag:
        poco(text='德克士（小红门店）').click()
    else:
        # 有些页面有时候无法查找到文本，所以采用图片识别
        # 点击左侧 exists，鼠标移动到要截图的地方，截图并重命名
        # exists:若找到图片则返回图片中心点坐标，否则返回 False
        dekeshiimg = exists(Template(r"德克士.png", record_pos=(-0.083, 0.283), resolution=(1080, 2340)))
        if dekeshiimg != False:
            touch(dekeshiimg)
        
    # 双击图片，修改target_pos=9,意思是点击+号按钮
    # assert_exists：若找到图片则返回中心点坐标，否则抛出异常
    add_xssjb_img = assert_exists(Template(r"add_img.png", target_pos=3,record_pos=(0.372, 0.049), resolution=(1080, 2340)), "校验香酥双鸡堡+按钮是否存在")
    touch(add_xssjb_img)
    sleep(2)
    
    add_cpzj_img = assert_exists(Template(r"add_img.png", target_pos=9,record_pos=(0.372, 0.049), resolution=(1080, 2340)), "校验脆皮炸鸡(鸡腿)+按钮是否存在")
    touch(add_cpzj_img)
    sleep(2)
        
    settlement_flag = poco(text='去结算').exists()
    if settlement_flag:
        poco(text='去结算').click()
    else:
        settlement_img = exists(Template(r"去结算.png", record_pos=(0.333, 0.894), resolution=(1080, 2340)))
        if settlement_img != False:
            touch(settlement_img)

    # 选择收货地址
    shipping_address = poco(text='选择收货地址').exists()
    if shipping_address:
        poco(text='选择收货地址').click()
        # 点击收货人，也就是点击收货地址
        poco(text='测试工程师成长之路').click()
        sleep(2)
    else:
        select_shipping_address_img = exists(Template(r"选择收货地址.png", record_pos=(-0.243, -0.679), resolution=(1080, 2340)))
        if select_shipping_address_img != False:
            touch(select_shipping_address_img)
            sleep(2)
        select_shipping_address2_img = exists(Template(r"选择收货地址2.png", record_pos=(-0.06, -0.295), resolution=(1080, 2340)))
        if select_shipping_address2_img != False:
            touch(select_shipping_address2_img)
            sleep(2)
        
    pay_flag = poco(text='去支付').exists()
    if pay_flag:
        poco(text='去支付').click()
    else:
        pay_img = exists(Template(r"去支付.png", record_pos=(0.349, 0.891), resolution=(1080, 2340)))
        if pay_img != False:
            touch(pay_img)
    sleep(3)
    assert_equal(poco('com.tencent.mm:id/ei').exists(),True,'校验是否跳转到微信支付页面')
    sleep(3)
except AssertionError as e:
    print('程序出现异常：%s'%e)
finally:
    print('退出应用')
    stop_app('com.tencent.mm')









